package com.situ.mall.common.service.impl;

import com.situ.mall.common.entity.Category;
import com.situ.mall.common.exception.MyException;
import com.situ.mall.common.mapper.CategoryMapper;
import com.situ.mall.common.service.ICategoryService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.situ.mall.common.vo.CategoryVO;
import com.situ.mall.common.vo.IndexCategoryVO;
import com.situ.mall.common.vo.TableVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author 闫佳宁
 * @since 2023-09-11
 */
@Service
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> implements ICategoryService {

        @Autowired
        private CategoryMapper categoryMapper;
        @Override
        public TableVO tree() {
        TableVO vo = new TableVO();
        vo.setData(categoryMapper.tree());
        return vo;
    }

        @Override
        public Category info(Integer id) {
        List<Category> list = categoryMapper.selectById(id);
        return list.get(0);
    }

        @Override
        public void delete(Integer id) {
        List<CategoryVO> list1=categoryMapper.selectByParentId(id);
        if(!list1.isEmpty()){//有子菜单
            throw new MyException("有子菜单不能删除");
        }
        categoryMapper.delete(id);
    }

        @Override
        public void addNext(Integer parentId, Category menu) {
        categoryMapper.addNext(parentId,menu);
    }

    @Override
    public List<IndexCategoryVO> indexList() {
        return baseMapper.indexList();
    }
}
